package integer;

/**
 * 包装类
 * java右8个基本类型，它们不具备面向对象的特性，因此在参与面向对象开发时我们需要
 * 将它们以"对象"的形式表示，因此产生了对应的8个包装类。
 */
public class IntegerDemo {
    public static void main(String[] args) {
        //基本类型转换为包装类
        int n = 123;
        //java推荐使用包装类的valueOf方法将基本类型转换为包装类
        //Integer的valueOf会重用表示-128-127之间的整数对象
        Integer i1 = Integer.valueOf(n);
        Integer i2 = Integer.valueOf(n);
        System.out.println(i1==i2);//true,i2重用了i1对象
        System.out.println(i1.equals(i2));

        //将包装类转换为对应的基本类型
        int i = i1.intValue();
        System.out.println(i);//123
        /*
            所有数字类型的包装类都支持下面的方法，因为这些是在java.lang.Number
            中定义的，而数字类型的包装类都继承自它。
            intValue,doubleValue,floatValue,byteValue等
         */
        double dou = i1.doubleValue();
        System.out.println(dou);//123.0

    }
}
